This system relates to a motion vector detection system which reduces the amount of operations for detecting a motion vector for motion compensation in moving picture compression with the quality of an image being maintained.
As a method conventionally used for digitizing a moving picture and then compressing and encoding the digitized data, a picture frame is divided into mesh-type blocks to be subjected to a block based motion compensation, orthogonal transform such as Discrete Cosine Transform (hereinafter referred to as DCT), quantization and variable-length encodation.
For example, the above mentioned method is employed in such international standards as H.261 dealing with a camera-input signal of an existing television, MPEG-1 (Motion Picture Image Coding Experts Group) as an improvement of H.261 designed for dealing with storage media such as CD-ROM, MPEG-2 designed for dealing with communication/broadcasting media, and MPEG-4 designed for dealing with low bit rate data and multi-media data. Motion compensation employed in this method is designed for high image quality compression and encodation, such that motion vector detection is involved. A typical motion vector detection method is now discussed.
FIG. 6 shows a full-matching method for detecting a motion vector 607 of a block 605 to be predicted in a current frame 601 through block matching based upon the information of a previous frame 602 having been encoded. The motion vector of the block 605 to be predicted is detected through matching of the block 605 to be predicted and individual blocks within a search range 603 fixed surrounding a block 608 in the previous frame 602 located at an equivalent position to that of the block 605 to be predicted. The motion vector 606 is only allowed to express itself within a range of xc2x115 pixels, which provides, in a general sense, a range of 30+M pixels vertically (in length) and 30+N pixels horizontally (in breadth) with the block to be predicted at the center for searching the block, where M designates the vertical pixel size of the block and N designates the horizontal pixel size of the block. Each pixel based error of all or some of blocks within the search range for the block to be predicted from the block to be predicted is calculated sequentially to detect a block having a minimal error within the search range as a reference block 604 of the block to be predicted. Based upon the positions of the reference block 604 and the block to be predicted, the motion vector 607 of the block to be predicted is obtained.
The aforementioned method having all the blocks within the search range subjected to pixel based error calculation to determine the reference block is called the full-matching method, which is the most efficient approach of detecting a precise reference block. By detecting the reference block as precise as possible, a pixel based error between the block to be predicted and the reference block is minimized, which contributes to the prediction of the block to be predicted with a small amount of information. The full-matching method, however, involving a large amount of operations for detecting a motion vector, requires a large amount of processing time for motion compensation. Further, the full-matching method, with the search range being fixed, performs an inefficient searching in an unnecessarily large area for a block to be predicted whose motion is static. This may result in a failure in detecting an appropriate motion vector, which may degrade the quality of the image or increase in the amount of bits for encoding.
Among motion compensation methods other than the full-matching method, some approaches employ the same fixed search range as that of the full-matching method and reduce the amount of operations for motion vector detection more than that of the full-matching method through thinning the pixels of the reference frame and the block to be predicted at the same ratio, sub-sampling or the like. Those approaches achieving the amount of operations reduced still fail to detect an appropriate motion vector due to the fixed search range, which then causes to degrade the quality of an image or increase the amount of bits for encoding.
Another type of approach for motion compensation is disclosed in Japanese Unexamined Patent Publication No. 7-107484, Japanese Unexamined Patent Publication No. 8-9379, Japanese Unexamined Patent Publication No. 8-32969, Japanese Unexamined Patent Publication No. 9-55941, Japanese Unexamined Patent Publication No. 9-65339, and Japanese Unexamined Patent Publication No. 10-4554. According to this approach, the block to be predicted whose motion is assumedly static is assigned a smaller area of the search range and the block to be predicted whose motion is assumedly dynamic is assigned a larger area of the search range so that the motion vector is detected through an optimum amount of operations for the specific block to be subjected.
According to Japanese Unexamined Patent Publication No. 8-9379, for example, the vertical and horizontal sides of an initially set area of the search range is extended by the average of the absolute values of the motion vectors of blocks adjacent to the block to be predicted. This system, as the search range is allowed to be set in accordance with the magnitude of the motion of a block, the search range is extended by the same distance from the block to be predicted on all sides vertically and horizontally, so that the directional property of the motion is neglected. Consequently, in the case of the average of the absolute values of motion vectors being large, the amount of operations for detecting a motion vector becomes no less than that of the full-matching method, which makes the detection of an appropriate motion vector difficult.
As aforementioned, in pursuit of detecting a precise motion vector, if the search range is set to a fixed large area, then the amount of operations for detection becomes large. In particular, with a static moving picture, this is rather a waste of searching, and may result even, on the contrary, in a failure to detect an appropriate motion vector. Further, in the method where a motion vector is detected with the search range being varied, the search range is extended by the same distance on all sides vertically and horizontally based upon the average value, maximum value or the like of the absolute values of adjacent motion vectors. Consequently, if the average or maximum value is large, then the extension margin becomes large, thereby posing the same problem as that of the full-matching method.
The present invention overcomes the deficiencies of the prior art systems by providing a motion vector detection system and method having a motion vector detector for obtaining a motion vector of a block to be predicted in a frame subjected to prediction through block matching of the block to be predicted and a search block within a search range in a reference frame and a motion vector memory for storing the motion vector obtained in the motion vector detector being mapped onto a position of the block to be predicted. The motion vector detection system comprises a predicted motion vector calculator for retrieving individual motion vectors of a plurality of reference blocks adjacent to the position of the block to be predicted from the motion vector. The predicted motion vector calculator calculates a predicted motion vector predicting the motion vector of the block to be predicted based upon the individual motion vectors of the plurality of reference blocks retrieved. The motion vector detection system further comprises a search range determiner for determining the search range in the reference frame based upon the predicted motion vector.
Further scope of the applicability of the present invention will become apparent from the detailed description provided hereinafter. However, it should be understood that the detailed description and specific embodiments, while disclosing the preferred embodiments of the invention, are provided by way of illustration only and not limitation.